% `template.tex', a bare-bones example employing the AIAA class.
%
% For a more advanced example that makes use of several third-party
% LaTeX packages, see `advanced_example.tex', but please read the
% Known Problems section of the users manual first.
%
% Typical processing for PostScript (PS) output:
%
%  latex template
%  latex template   (repeat as needed to resolve references)
%
%  xdvi template    (onscreen draft display)
%  dvips template   (postscript)
%  gv template.ps   (onscreen display)
%  lpr template.ps  (hardcopy)
%
% With the above, only Encapsulated PostScript (EPS) images can be used.
%
% Typical processing for Portable Document Format (PDF) output:
%
%  pdflatex template
%  pdflatex template      (repeat as needed to resolve references)
%
%  acroread template.pdf  (onscreen display)
%
% If you have EPS figures, you will need to use the epstopdf script
% to convert them to PDF because PDF is a limmited subset of EPS.
% pdflatex accepts a variety of other image formats such as JPG, TIF,
% PNG, and so forth -- check the documentation for your version.
%
% If you do *not* specify suffixes when using the graphicx package's
% \includegraphics command, latex and pdflatex will automatically select
% the appropriate figure format from those available.  This allows you
% to produce PS and PDF output from the same LaTeX source file.
%
% To generate a large format (e.g., 11"x17") PostScript copy for editing
% purposes, use
%
%  dvips -x 1467 -O -0.65in,0.85in -t tabloid template
%
% For further details and support, read the Users Manual, aiaa.pdf.


% Try to reduce the number of latex support calls from people who
% don't read the included documentation.
%
\typeout{}\typeout{If latex fails to find aiaa-tc, read the README file!}
%



\documentclass[]{aiaa-tc}% insert '[draft]' option to show overfull boxes

\usepackage{listings}
\usepackage{float}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{amsmath}

\bibliographystyle{ieeetr}

 \title{Bare-Bones \LaTeX\ Development of Rate Gyroscope Error Characterization Tools with Application to Helium Exposure Testing}

 \author{
  Evan W. Hilgemann%
    \thanks{MSE Student, Department Aerospace Engineering; ehilge@umich.edu.}
  \ and Hunter Ruch
  \thanks{BSE Student,  Department Aerospace Engineering; hsruch@umich.edu} \\
  \ and James W. Cutler \\
  \thanks{Professor Department Aerospace Engineering; jwcutler@umich.edu}
  {\normalsize\itshape
  University of Michigan, Ann Arbor, Michigan 48109}\\
 }

 % Data used by 'handcarry' option if invoked
 \AIAApapernumber{YEAR-NUMBER}
 \AIAAconference{Conference Name, Date, and Location}
 \AIAAcopyright{\AIAAcopyrightD{YEAR}}

 % Define commands to assure consistent treatment throughout document
 \newcommand{\eqnref}[1]{(\ref{#1})}
 \newcommand{\class}[1]{\texttt{#1}}
 \newcommand{\package}[1]{\texttt{#1}}
 \newcommand{\file}[1]{\texttt{#1}}
 \newcommand{\BibTeX}{\textsc{Bib}\TeX}

\begin{document}

\maketitle

\begin{abstract}
The purpose of this paper is to present standardized procedures for determining the error characteristics of a rate gyroscope. However, the developed methods can also be applied to other forms of inertial sensors. The work is motivated by the importance of inertial measurement devices, and knowledge of their error parameters, to spacecraft attitude determination problems. Specific procedures for determining the angular random walk and bias of a sensor using the Allan variance method are discussed. This tool is successfully applied to an Epson M-G350-PD11 IMU, which incorporates a three axis gyroscope and will be flown on an upcoming CubeSat mission. Furthermore, a visualization tool used to track scale factor and bias errors over time is established. The unique contribution of this paper is to characterize how exposure to helium affects rate gyroscope measurements. Although the negative effects of helium have been known for some time, there has been little effort to characterize how a complete unit reacts. This characterization is important due to the potential for a spacecraft to be exposed to helium on launch vehicles. Three separate sensors, a muRata SCR1100 single axis gyro, an ST L3G4200D three axis gyro, and an Epson M-G350-PD11 IMU are exposed to helium. The calibration parameters of these units are then tracked over time. All of these devices have spaceflight heritage on Michigan Exploration Laboratory satellites or will be flown on an upcoming mission. The first two units exhibited varying levels of undesired behavior after helium exposure, while the Epson remained unaltered. Additionally, a method to seal the units using epoxy encapsulation is proposed and tested on two L3G4200D sensors. Even though this appears to have negated helium related issues, the epoxy application process itself resulted in other side effects.
\end{abstract}







%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The purpose of this report is to establish operating parameters and error characteristics of an Epson M-G350-PD11 IMU (data sheet available at \cite{software}). Basic gyro timing settings and error characteristics are discussed. The angular random walk (ARW) and bias stability are experimentally determined using an Allan variance plot. This work is motivated by the CADRE ADCS simulations which require an accurate estimate of gyro error characteristics. Although this report deals specifically with the specified IMU, the methods laid forth can be applied to most inertial sensors.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Epson Settings}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

There are two primary variables that can be adjusted during the setup of the Epson: sample output frequency and TAP filter. \\
\\
\textbf{Output Frequency:} The output frequency simply controls how often the IMU outputs data.  Note that the IMU itself samples measurements internally at 2000 Hz regardless of of the output frequency.\\
\\
\textbf{TAP Filter:} The TAP filter is a moving time average filter that takes the last N internally measured values and averages them to create an output. Note the aforementioned difference between internal measurements and output frequency. More information on the cutoff frequencies of the filter can be determined using the method described in Appendix \ref{app:filt}. The IMU also applies a hardware filter before TAP filtering occurs\\
\\
The easiest way to explain how these parameters affect gyro operation is with an example. Refer to Figure~\ref{fig:timing} (data sheet Figure 5.6) which depicts the timing of the gyro measurements. The output frequency is set to 250 Hz with a TAP filter of N=8. With these settings an output measurement is created every 4ms. However, the IMU still takes measurements at 2000 Hz, or every 0.5 ms. The N=8 tap filter indicates that the output measurement is the average of the last eight internal measurements. If the TAP filter were set to 16, it would output the average of the last 16 internal measurements. If the output frequency was then changed to 500Hz and the TAP remained at 16, the IMU would still average the last 16 internal measurements at each output time. 

The takeaway from this is that regardless of settings, the IMU samples itself at 2000 Hz. The settings essentially determine how these internal measurements are outputted by the unit.

\begin{figure}[h]
\centering
\includegraphics[width=0.95\linewidth] {plots/TimingChart.jpg}
\caption{Output timing diagram given by the Epson data sheet.}
\label{fig:timing}
\end{figure}

Tables \ref{table:Hz} and \ref{table:tap} describe the appropriate byte assignments to select available output frequency and TAP settings. The recommended TAP settings are set such that the TAP filter always spans the samples taken between each output measurement.

\begin{table}[h]
\begin{tabular}{|c|c c c |}
	\hline
	& \bf Byte Assignment & \bf Output Rate [Hz] & \bf Recommended TAP \\ 
	\hhline{~---}
	\multirow{ 6}{*}{\bf bit[15:8]} & 0x01 &  1000 & $\geq$ 2 \\ 
	\hhline{~---}
	& 0x02 &  500   & $\geq$ 4 \\ 
	\hhline{~---}
	& 0x03 &  250 & $\geq$ 8 \\ \hhline{~---}
	& 0x04 &  125   & $\geq$ 16 \\ \hhline{~---}
	& 0x05 &  62.5 & $\geq$ 32 \\ \hhline{~---}
	& 0x06 &  31.25   & $\geq$ 64 \\ \hhline{~---}
	& 0x07 &  15.625  & $\geq$ 128 \\ \hline
\end{tabular}
\caption{Data output register assignments ad recommended TAP settings.}
\label{table:Hz}
\end{table}

\begin{table}[h]
\begin{tabular}{|c|c c |}
	\hline
	\multirow{ 8}{*}{\bf bit[2:0]} & \bf Byte Assignment & \bf TAP Setting \\ 
	\hhline{~--}
	& 001 &  2  \\ \hhline{~--}
	& 010 &  4    \\ \hhline{~--}
	& 011 &  8  \\ \hhline{~--}
	& 100 &  16   \\ \hhline{~--}
	& 101 &   32\\ \hhline{~--}
	& 110 &  64   \\ \hhline{~--}
	& 111 &  128   \\ \hline
\end{tabular}
\caption{Register assignments for various TAP settings.}
\label{table:tap}
\end{table}




 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Allan Variance}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Basics}
The Allan variance method was initially established in 1966 as a method to measure the error characteristics in clocks  but has since been adapted to a wide array of applications including MEMS inertial sensors \cite{allan}. The Allan variance is widely used as it is the simplest method to perform stochastic modeling of the error in such sensors. A plot of Allan variance is relatively straightforward to create and incorporates significant information about error characteristics \cite{Nasar}.

Allan variance (AVR) is a statistical property calculated from a long data set produced while the sensor is at rest. It is a function of some time constant, $\tau$, which is also referred to as bin size. To calculate AVR, the data set is split into bins of size $\tau$ and the average value within each bin found. See Figure \ref{fig:graph} for clarification. The difference between successive bins must be calculated, squared, summed together, and multiplied by a scaling factor to actually find AVR. Equation \ref{eq:AVR} shows this process in mathematical form \cite{xbow}. It follows that Allan variance is an objective measure of how much the average of each successive bin changes over the entire data set. 

\begin{equation}
AVR^2(\tau) = \frac{1}{2(n-1)}\sum\limits_{k=2}^n (y(\tau)_k- y(\tau)_{k-1})^2.
\label{eq:AVR}
\end{equation}

\begin{figure}[h]
\centering
\includegraphics[width=0.80\linewidth] {plots/samplegraph.jpg}
\caption{Depiction of how the Allan variance is calculated.}
\label{fig:graph}
\end{figure}


In this equation, $y(\tau)_k$ is the average value of the $k^{th}$ bin of size $\tau$, and $n$ is the total number of bins. The Allan variance is a characteristic of the entire data set and is a function of $\tau$. For step by step instructions on how to calculate the Allan variance, see Appendix \ref{app:all}.


\subsection{Understanding the Plot}
When Allan variance is calculated over a range of $\tau$ and graphed on a log-log scale, an Allan variance plot is created. A typical example is provided by Epson (spec sheet Figure 4.1) and reproduced in Figure \ref{fig:samp}. The shape of the trace is typical for inertial measurement data. The plot starts at some value and decreases to a minimum before increasing again. At small bin sizes, the AVR is dominated by noise in the sensor. As the bin sizes get larger, the average within each bin becomes more consistent and the AVR decreases. At some point a minimum is reached and the ARW increases due to rate random walk and imperfections and the measurement. The Allan variance plot is discussed in more detail in Section \ref{sec:error}.

\begin{figure}[h]
\centering
\includegraphics[width=0.550\linewidth] {plots/sampleallan2.jpg}
\caption{Sample plot of the Allan variance as a function of $\tau$.}
\label{fig:samp}
\end{figure}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Error Characteristics}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{sec:error}
This section focuses primarily on gaining an intuitive understanding of different types of error and how to determine them using an AVR plot. For a more in depth discussion on the derivation of the error parameters, see \cite{Nasar} and \cite{Vagner}. Figure \ref{fig:typ} (originally published in \cite{manual2}) provides an overview of what an ideal Allan variance plot looks like and can be referred to throughout this section.


\begin{figure}[h]
\centering
\includegraphics[width=0.850\linewidth] {plots/typical.jpg}
\caption{Ideal Allan variance plot \cite{manual2}.}
\label{fig:typ}
\end{figure}
 

\subsection{Bias Stability}
\label{sec:bias}
Every gyro has some sort of bias error, or an offset in measurement, that can change with time. The bias stability is simply a measure of how much the bias changes. Typical values of bias stability are in the range of tens of degrees per hour. The bias stability can be determined from the Allan variance plot simply by reading off the minimum value, as shown schematically in Figure~\ref{fig:bias}, and has units of deg/hr. In practice, a properly designed EKF will directly account for gyro bias in real time; therefore, prior knowledge of the gyro's bias characteristics has less importance. 

\begin{figure}[h]
\centering
\includegraphics[width=0.45\linewidth] {plots/bias.jpg}
\caption{Finding bias stability from Allan variance plot.}
\label{fig:bias}
\end{figure}

   

\subsection{Angular Random Walk}
\label{sec:ARW}
In simplest terms, the angular random walk (ARW) describes the amount of white noise in a signal independent of other characteristics such as bias \cite{xbow}. The term relates to the error in an angular position calculation made by integrating a rate gyro measurement. To determine ARW from an Allan variance plot, find where the tangent of the plot is -0.5. When working with experimental data, this will most likely occur at the very beginning of the plot. Next, determine where the -0.5 slope tangent line intersects the vertical line of $\tau=1$ as shown in \ref{fig:ARW} (a method for how to do this on a log-log scale is presented in Appendix \ref{app:log}). Read off the y value of this intersection point and divide by 60 to convert the units from deg/hr to deg/$\sqrt{\text{hr}}$. This final value is the ARW of the signal. ARW is arguable the most important error characteristic since it cannot be accounted for in an EKF algorithm and can have significant magnitude.

\begin{figure}[h]
\centering
\includegraphics[width=0.45\linewidth] {plots/ARW.jpg}
\caption{Finding ARW stability from Allan variance plot.}
\label{fig:ARW}
\end{figure}

\subsection{Other Characteristics}

There are three additional error parameters that can be found from the Allan variance plot: quantization error, rate random walk, and rate ramp. These errors are small enough in magnitude that they can generally be ignored for MXL's purposes. 

\subsubsection{Quantization}
Quantization is an error inherent when converting from analog to form. It can manifest itself on an Allan variance plot as a segment of line with a slope of -1. The parameter is defined as where this line crosses $\tau=\sqrt{3}$ in a similar manner to ARW \cite{Vagner}. 

\subsubsection{Rate Random Walk}
Rate random walk (RRW) is a random process of uncertain origin. On an AVR plot, it as defined as the intersection between $\tau=3$ and a tangent line with a slope of +0.5 \cite{Nasar}. This value was originally part of the CADRE ADCS simulations and not given on the Epson spec sheet so some effort was put into determining it. Epson was contacted to see if they could provided an RRW estimate along with information on how to measure the parameter. An engineer from Epson made the following comments after a discussion over MXL's applications: 
\begin{quote}
"We don't supply RRW for our IMU devices mainly because of large equipment/resource demand to determine it with any level of accuracy. i.e. long acquisition times [at least a week] in thermally stable environment. Also it's not clear to us that obtaining the RRW is justifiable, since it's debatable and of limited value for use in any real system application."
\end{quote}
The best estimate the engineer gave for RRW was between  0.5 and 10 deg/$hr^{3/2}$. Upon his recommendations, the ADCS simulation was run with RRWs ranging from 0.1 to 10 and no difference was observed in the output. Thus, it can be confirmed that RRW is not an important parameter for this application. It should be noted that in some of the Allen variance plots, the trace does appear to approach a slope of +1. However, the Epson engineer stated that that behavior is due to thermal and vibration effects and is not directly related to the RRW of the gyro.

 \subsubsection{Rate Ramp}
Rate ramp is a slow monotonic change over a long period of time due to deterministic errors \cite{Vagner}. Its value can be read off the Allan variance plot at the intersection of a line with slope +1 and the vertical line at $\tau=\sqrt{2}$.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Data Collection}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
One only needs a reasonably long set of data from a stationary sensor to obtain the AVR plot. Approximately two to three minutes, depending on output frequency, was sufficient to create a reasonable plot. With too little data the plot simply does not reach its minimum value. The gyro should be in a a mechanically/thermally stable environment. It is conceivable that vibrations from from sources such as the building HVAC system could corrupt the data. For this test, most data sets were taken in the laboratory wing of FXB. Some sets of data were taken outside and sheltered from the wind, but no significant difference in the Allan variance plots was observed. To collect the data, the manufacturer provided software available at \cite{software} was used. 


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Results}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The results presented in Table~\ref{table:result} were calculated from data sets ranging in length from 3-5 minutes. The data was from the vertically oriented axis. It was found that a non-vertically oriented axis, regardless of which gyro axis this corresponds to, recorded more noise. The experimental values compare favorable to the spec sheet values for bias stabilility and ARW of 6 deg/hr and 0.2 deg/$\sqrt{\text{hr}}$. The experimental plots that these numbers were calculated from are given in Figures~\ref{fig:62}-\ref{fig:250}. The methods used to calculate the bias stability and ARW are described in Sections \ref{sec:bias} and \ref{sec:ARW}. The stated bias stability is not the true minimum of the plot due to noise inherent in the measurement. To estimate the true bias stability all points within $\pm$30 $\tau$ steps of the true minimum were averaged.

\begin{table}[h]
\begin{tabular}{|c|c|c|c|}
	\hline
	\bf Sample Freq. [Hz] & \bf TAP & \bf Bias [deg/hr] & \bf ARW [deg/$\sqrt{\text{hr}}$] \\
           & & \bf / \% error & \bf / \% error \\
	\hline
	62.5 & 32 & 4.68 / -22.5\% & 0.15 / -25\% \\ \hline
	125  & 16 & 4.55 / -24.2\% & 0.15 / -25\%\\ \hline
	250  & 8   & 8.51 / +41.8\% & 0.14 / -30\% \\ \hline
\end{tabular}
\caption{Summarized results from experimentally recorded data. Errors represent deviations from the spec sheet values.}
\label{table:result}
\end{table}

\begin{figure}[h]
\centering
\includegraphics[width=0.95\linewidth] {plots/625-32.jpg}
\caption{Allan variance plot for a sampling frequency of 62.5 Hz and TAP filter N=32.}
\label{fig:62}
\end{figure}

\begin{figure}[h]
\centering
\includegraphics[width=0.95\linewidth] {plots/125-16.jpg}
\caption{Allan variance plot for a sampling frequency of 125 Hz and TAP filter N=16.}
\label{fig:125}
\end{figure}

\begin{figure}[h]
\centering
\includegraphics[width=0.95\linewidth] {plots/250-8.jpg}
\caption{Allan variance plot for a sampling frequency of 250 Hz and TAP filter N=8.}
\label{fig:250}
\end{figure}

\clearpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Simulations }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
An ADCS simulation was run to prove that the selected Epson IMU is able to meet the CADRE mission goals. for the simulation, worst case error estimates for bias stability, ARW, RRW of 18.51 deg/hr, 1.4 deg/$\sqrt{\text{hr}}$, and 100 deg/$hr^{3/2}$ were used.The gyro is set to an output frequency of 125 Hz and a TAP filter of N=16. Every 25 values are averaged together and sent to the estimation algorithm as a single measurement. Essentially, software is used to adjust the measurement frequency to 5Hz with N=80. This is done because the flight computer can handle an input frequency of no more than 5 Hz. The results of are shown in Figure \ref{fig:ADCS1}. Notice the pointing error in the bottom right corner never approached the mission goal of one degree accuracy regardless of whether or not the spacecraft was in eclipse.
  
\begin{figure}[p]
\centering
\includegraphics[width=0.99\linewidth] {plots/ADCS1.jpg}
\caption{Results of the worst case ADCS simulation.}
\label{fig:ADCS1}
\end{figure}

More simulations were run to determine how corrupter the gyro measurements needed to be to create to a mission failure. AS discussed in previous sections the bias instability is accounted for in the EKF algorithm and the RRW doesn't have a large enough magnitude to affect the simulations in any measurable manner. However, it was found that if the ARW of the gyro were increased to 5 deg/$\sqrt{\text{hr}}$ pointing accuracy would drop below one degree. This scenario is shown in \ref{fig:ADCS2}. Considering the failure point occurs at over 33 times the expected ARW value, it can be reasonable concluded that the Epson IMU will be able to fulfill the mission objectives.

\begin{figure}[p]
\centering
\includegraphics[width=0.99\linewidth] {plots/ADCS2.jpg}
\caption{Results of failure point ADCS simulation.}
\label{fig:ADCS2}
\end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Conclusions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The Allan variance is an effective tool to measure various error characteristics of inertial sensors and can be easily obtained from a steady state data set. Values of particular interest, such as bias stability and ARW, can easily be read off of an AVR plot. Other characteristics can be found but are not as important for real-world applications. The methods laid forth for calculating AVR and the associated error terms were applied to data from an EPSON M-G350-PD11 IMU. The calculated results match up favorable with spec sheet values. Multiple simulations were done to determine the effects of the error parameters on spacecraft operation. It was shown the the ARW is the only error parameter that could lead to mission failure. However, the actual ARW value would need to be over 33 times the expected value for this to happen.

\clearpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Creation of the Allan Variance Plot}
\label{app:all}
 Use the following process to determine the Allan variance for a particular time constant.
\begin{itemize}
\item Determine the bin sizes
\begin{itemize}
\item Set the minimum bin size to be as small as one
\item Set the maximum bin size so that the data set is broken into no less than nine bins. Any less than that and the calculation loses it statistical significance. 
\item Set the amount by which the bin size will increase on each iteration. A smaller increase will give better definition but at a cost of computing time
\end{itemize}
\item Perform the following process to find the AVR for each iteration of $\tau$  \cite{xbow}.
\begin{itemize}
\item Separate the entire data series into bins of size $\tau$.
\item Find the average value within each bin.
\item Find the difference in average between successive bins, square each result, and take the sum of all of them
\item Divide result by a scaling factor of $2\cdot(n-1)$ where $n$ is the total number of bins
\item Take the square root

\begin{equation}
AVR^2(\tau) = \frac{1}{2(n-1)}\sum\limits_{k=1}^n (y(\tau)_k- y(\tau)_{k-1})^2.
\end{equation}

\end {itemize}
\item Store each value for AVR that corresponds with each iteration of $\tau$. Plot on a log-log scale
\end{itemize}


\section{Linear Fit on a log-log Scale}
\label{app:log}

\begin{itemize}
\item Recall that a line on a log-log plot has a similar form to a line on a linear scale:

\begin{equation}
y=mx+b \;\;\;\; \leftrightarrow \;\;\;\; log(y) = m\cdot log(x) + log(b).
\end{equation}

The log form equation can also be written as:

\begin{equation}
y = b\cdot x^m.
\label{eq:exp}
\end{equation}

\item Select two points to linearly fit a line in between. Something like the first and fourth points on the AVR plot should work reasonably well.
\item Find the slope in between the two points

\begin{equation}
m = \frac{log(y_2)-log(y_1)}{log(x_2)-log(x_1)}
\end{equation}

\item Find where this line intersects intersects the vertical axis at $x=1$ (this corresponds to the y intercept on a log-log plot) using one of the two points used to define the line

\begin{equation}
b = \frac{y_1 }{ x_1^m}
\end{equation}

\item Plot the line on the log-log axis using Equation \ref{eq:exp} and interpolate to determine

\end{itemize}

Note: To find ARW, simple divide $b$ by 60. 

\section{Noise Spectral Density}
\label{app:filt}
The Epson spec sheet provides sample plots of the Noise spectral density (NSD) and TAP filter characteristics, reproduced here in Figures \ref{fig:spec} and \ref{fig:TAP}. To understand what these plots represent, view them as a type of Bode plot. In both cases the x axis represents different frequencies present in the output signal (NOT the sampling frequency) and the y axis represents the amplitudes. The location in Figure \ref{fig:spec} where the plot rolls off indicates the cut-off frequency of the specified TAP filter. In such a manner, the trace in the noise spectral density plot should be similar to the expected TAP performance. 

To illustrate this point, the NSD plot as been experimentally recreated using a sampling frequency of 1000Hz and TAP filters of 2 and 16 in Figures \ref{fig:nsd2} and \ref{fig:nsd16}. Notice the similarities between those plots and what would be predicted in Figure \ref{fig:TAP}. The ``humps" are essentially a result of the TAP filter aliasing the data. In many but not all data tests a peak in magnitude if the NSD plot around of 10Hz was observed. This is attributable to disturbances in the environment. 

To create the NSD plot, the pwelch function in matlab was used. A sample piece of code of how to use this function is shown below.

\begin{verbatim}
     nx = max(size(gx));
     na = 64;
     w = hanning(floor(nx/na));
     [Pxx1,f] = pwelch(gx,w,0,[],fs);
\end{verbatim}

The variable $gx$ is the data vector, $fs$ is the sampling frequency, and $na$ is an averaging parameter. The function outputs a the power density and frequency vector. To create the final NSD plot, use a log-log scale to plot the square root of the power density vector on the y-axis vs frequency on the x-axis..

\begin{figure}[p]
\centering
\includegraphics[width=0.75\linewidth] {plots/noiseSpec.jpg}
\caption{Example noise spectral density of the Epson gyro.}
\label{fig:spec}
\end{figure}

\begin{figure}[p]
\centering
\includegraphics[width=0.75\linewidth] {plots/TAP.jpg}
\caption{Example TAP filter performance.}
\label{fig:TAP}
\end{figure}

\begin{figure}[p]
\centering
\includegraphics[width=0.85\linewidth] {plots/NSD2.jpg}
\caption{Noise spectral density plot for an output frequency of 1000Hz and TAP N=4.}
\label{fig:nsd2}
\end{figure}

\begin{figure}[p]
\centering
\includegraphics[width=0.85\linewidth] {plots/NSD16.jpg}
\caption{Noise spectral density plot for an output frequency of 1000Hz and TAP N=16.}
\label{fig:nsd16}
\end{figure}

\clearpage






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The purpose of this report is to characterize the effect of a helium environment on the operation of various sensor models. This information is relevant due to the importance of inertial sensors in spacecraft attitude determination and control and the potential for these sensors to be negatively impacted by exposure to helium aboard a launch vehicle. Various studies have measured diffusion of helium through MEMS packaging \cite{kim} and change in sensor resonator behavior after exposure to helium has been documented in the literature \cite{sparks1, sparks_drift}. The hazard posed to spacecraft was originally made public by the Aerospace Corporation following their AeroSat missions. Similar problems were observed on MXL's MCubed-2 mission.\\

Testing was performed on three inertial measurement models, a muRata SCR1100 single axis gyro \cite{SCR}, an ST L3G4200D 3-axis gyro \cite{L3G}, and an Epson M-G350-PD11 IMU \cite{Epson_sheet}. The SCR1100 unit is identical to the one flown on MCubed-2, while the L3G is used on MXL high altitude balloon missions and will be incorporated into future spacecraft designs. Finally, the Epson unit will be flown on an upcoming MXL CubeSat mission named CADRE. All three units were exposed to high helium concentrations for up to 24 hours, an amount of time similar to what could be experienced on a launch vehicle. The performance of each unit was then tracked over 1-5 months. Additionally, two L3G units were coated in epoxy before being exposed to helium with the goal of verifying if the epoxy could act as an effective barrier to helium diffusion.\\

The analysis methods used to characterize the units are described in Section \ref{sec:tools}. The basic procedures and results for the helium soak experiments are presented in Section \ref{sec:hel} while the epoxy sealing experiment is discussed separately in Section \ref{sec:epo}. 

%%%%%%%%%%%%%%%%
\section{Analysis Methods}
\label{sec:tools}
%%%%%%%%%%%%%%%%

In this experiment, the gyroscope is modeled as: 

\begin{equation}
\omega_{meas} = \alpha \cdot \omega_{true} + \beta + \eta,
\end{equation}
 %
where $\alpha$ is a scale factor, $\omega_{true}$ is the actual angular rate, $\beta$ is a slowly varying zero offset bias, and $\eta$ refers to inherent noise in the system. Note that this equation ignores other terms such as axis misalignment which cannot be distinguished from scale factor error given the test conditions. However, previous experiments done to calculate calibration parameters as part of the RAX CubeSat mission have shown that a misalignment error of $15^\circ$ resulted in a calculated scale factor error of only 3.5\%. If the misalignment error is reduced to $5^\circ$, the error is only 0.3\% \cite{Springmann}. \\

Each test consisted of rotating the gyro about an axis of interest at $n$ different angular velocities, denoted as  a vector $\vec{\omega}_{true}$, for some amount of time. The $i^{th}$ estimated angular velocity, ${\omega}_{meas,i}$,  is then the mean  measurement of $\omega_{true,i}$. Furthermore, each ${\omega_{meas,i}}$ corresponds to a standard deviation $\sigma_i$,
\begin{equation}
 \vec{\omega}_{true} =
 \begin{bmatrix}
     \omega_{true,1}\\
     \omega_{true,2}\\
     \vdots \\
     \omega_{true,n}   \\
\end{bmatrix}
\;\;\;\;\;\;\;
\Rightarrow
\;\;\;\;\;\;\;
 \vec{\omega}_{meas} =
 \begin{bmatrix}
     \omega_{meas,1}\\
     \omega_{meas,2}\\
     \vdots \\
     \omega_{meas,n}   \\
\end{bmatrix}
\;\;\;\;\;\;\;
\Rightarrow
\;\;\;\;\;\;\;
\vec{\sigma} =
 \begin{bmatrix}
     \sigma_1\\
     \sigma_2\\
     \vdots \\
     \sigma_n \\
\end{bmatrix}.
\end{equation} 


It follows that the $\alpha$  and $\beta$ error terms can be found by performing a linear fit of the set $[ \vec{\omega}_{true} , {\vec{\omega}_{meas}} ]$. The slope of the resulting best-fit line corresponds to $\alpha$ and the $y$ intercept to $\beta$. The mean value of $\vec{\sigma}$ was also calculated to provide some measure of the standard deviation of the system for a particular test. In practice, the standard deviation was greater when the rate table spun at higher speeds due to vibrations within the rate table itself. For this experiment, all parameters were measured before an event of interest occurred. The same parameters were then calculated after the helium exposure, thereby providing an objective measure of how the performance of the unit changed over time.\\

To visualize the change in calibration one can simply plot $ \vec{\omega}_{true}$ vs. $ {\vec{\omega}_{meas}} $. A well calibrated unit would produce a line of the form $y=x$. The error parameters are visually apparent when the y intercept becomes non-zero or the slope differs from one. Basic schematic examples are shown in Figure \ref{fig:plots}.\\

\begin{figure}[h]
\centering
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=.9\linewidth] {Plots_helium/SchemA.jpg}
\end{minipage}
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=.9\linewidth] {Plots_helium/SchemB.jpg}
\end{minipage}
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=.9\linewidth] {Plots_helium/SchemC.jpg}
\end{minipage}
\begin{minipage}{0.2\linewidth}
\centering
\includegraphics[width=.9\linewidth] {Plots_helium/SchemD.jpg}
\end{minipage}
\caption{Explanation of data trends in actual vs. measured angular speed plot. (a) Desired behavior of form y=x (b) Scale factor example (c) Zero offset example (d) Scale factor and zero offset example.}
\label{fig:plots}
\end{figure}

Additionally, a measurement of the angular random walk (ARW) was done on the Epson using an Allan Variance analysis. The ARW provides another measure of the quality of the signal produced by the unit. A full explanation of how this parameter is calculated is given in a separate MXL Document, see \cite{ARW}. Additional useful information on the Allan Variance is available at \cite{xbow}, \cite{manual2}, and \cite{nasar}. The ARW analysis was not performed on the other units because valid data is not available for the SCR1100, and the L3G has relatively low signal quality. Therefore, attempts to experimentally calculate the ARW were not repeatable even under control conditions. \\

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Helium Soak Testing}
\label{sec:hel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

This section explores the effect that exposure to a helium environment has on the long term operation of the tested gyro units. The general experimental procedure is described and then results are presented.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procedure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The experimental procedure for each unit was generally the same in that they were all exposed to a high concentration of helium for up to 24 hours. This time was chosen because it is similar to what a satellite might experience aboard its launch vehicle. The performance of the unit was then tracked over a period of to simulate the length of a typical CubeSat mission.  The SCR1100 unit was the first to be tested and was exposed to helium for 17 hours on August 27th, 2013. The unit was simply left inside of a helium filled latex balloon for the prescribed amount of time. Its performance was checked every 1-2 weeks through the beginning of 2014.  Before the experiment was terminated, it was exposed to a vacuum of quality $5\cdot10^{-4}$ Torr to see if such a scenario would change performance.\\

The SCR1100 was tested using a rate table to apply a known series of rotations of magnitudes $\pm$[ 1, 2, 4, 7, 10, 20, 30 ,40, 50, 60 ]$\frac{deg}{sec}$, each applied for 30 seconds each. A MATLAB script was used to set the command speed of the rate table for the duration of the test. Data was logged from the unit and later parsed and analyzed in MATLAB.\\

The L3G and Epson units were soaked and tested in parallel. Both units were exposed to helium for 24 hours on August 27th, 2014. The experiment was terminated after a month and a half because both units had stable outputs by this time. As opposed to using a party balloon, a multi-layer bladder was created using sheets of polyethylene plastic. This was done due to the difficulty of inserting breakout boards through the neck of a latex balloon. The units were also placed on a foam platform about 1.5'' high while in the bladder. Thus, as air diffused into the bladder and settled on the bottom, the units remained exposed to a richer helium environment. After inserting the units into the bladder, it was filled with helium and sealed shut. The units were then removed from the helium environment after the prescribed amount of time. Figure~\ref{fig:blad} shows an image of the inflated bladder as well as a schematic of its construction. Both units were calibrated before the soaking occurred and were tested using the rate table at 1-2 week intervals after the soak. An image of the units undergoing testing on the rate table is shown in Figure \ref{fig:rate}. The rates used to test these units were $\pm$ [0, 5, 10, 20, 30, 60, and 100] $\frac{deg}{sec}$, each applied for 30 seconds. Tests were repeated for each principle axis of each unit. The L3G unit was exposed to helium in a similar manner a second time after 54 days to determine the effects of a second exposure on the operation of the unit. 
%
\begin{figure}[h]
\centering
\begin{minipage}{0.35\linewidth}
	\centering
		\includegraphics[width=0.75\linewidth] {photos/BladderNew.jpg}
\end{minipage}
\begin{minipage}{0.1\linewidth}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\centering
\includegraphics[width=1\linewidth] {Plots_helium/BladderSchem.png}
\end{minipage}
	\caption{(left) Image of the L3G and Epson units sealed inside of a helium filled plastic bladder (right) Schematic of the internal structure of the plastic bladder.}
\label{fig:blad}
\end{figure}
%
\begin{figure}[h]
  \includegraphics[width=0.65\linewidth]{photos/RateTest.jpg}
\caption{The two gyro units set up on the rate table to test the $x$-axis rotation. The Epson is on the left and the L3G unit is on the right.}
\label{fig:rate}
\end{figure}
\\

Data was collected from the L3G unit using an MSP430 processor connected to an SD card logger. The Epson was connected to a computer using available pass-throughs and data was logged with manufacturer provided software available at \cite{Epson_log}.


%%%%%%%%%%%%%%%%
\subsection{Results}
%%%%%%%%%%%%%%%%

Of the three units tested, the SCR1100 proved to be the most affected by the helium exposure and also exhibited significant and unpredictable transient behavior. Over the first two months of the experiment, the zero offset bias drifted from near zero to around 70$^\circ$ and the scale factor was also skewed. The average standard deviation of the measurements increased from roughly 0.36 $\frac{deg}{sec}$ to nearly 30$\frac{deg}{sec}$. Interestingly, after day 85 of data collection the standard deviation dropped to less than 1 $\frac{deg}{sec}$. Furthermore, the error terms began to approach their pre-soak values. The cause of this improvement in performance is not understood. As mentioned previously, the SCR1100 unit was exposed to a vacuum near the end of the experiment. It was hoped that doing so might somehow reset the gyro output to its pre-soak value. However, this test did not affect the output characteristics of the unit.\\

Figure \ref{fig:history} shows plots of the gyro output during rate table tests compared to the actual rate. The actual rate plotted was measured by pinging the rate table. These values were within a couple hundredths of the desired rate. Therefore, for analysis it was assumed that the rate table was spinning precisely at the desired speed. The first plot corresponds to the pre-soak measurement, the second plot depicts the day after the soak, the third depicts the worst recorded performance of the unit, and the final plot is the last data set taken. Figure \ref{fig:1100} depicts how the scale factors of the unit changed over time, as described in Section \ref{sec:tools}, by plotting desired vs measured rotations. The plot is accompanied by the average standard deviations over all measurements for a particular test. Day 0 corresponds to the pre-soak calibration tests, and the first post-soak measurements were done on day 3.\\

The L3G unit was moderately effected by the helium exposure  but not to the same extent as the SCR1100. All three axes of the unit showed some change in behavior. Some selected calibration parameters at important times during the experiment are shown in Table \ref{tab:l3g}. Transient behavior was observed but a steady state was arrived at after approximately four days. Although there are differences between the three principle axes, the scale factor generally increased by 30-40\% after the helium soak. The $x$ and $y$ offset bias increased from near 0 to around -40$^\circ$ and -60$^\circ$ respectively while the $z$ bias hovered around zero. The unit was exposed to helium a second time for 24 hours on day 57 of the experiment. This caused a new change in the calibration factors which reached a steady state after a short transient period. Similar percent changes in scale factor and zero offset bias were observed. Figure \ref{fig:6108} depicts this information graphically. One can see that the various lines generally lie in two distinct groups. These correspond to the measurements before and after the second soak. The standard deviations remained in the range of 0.5$^\circ$ -0.75$^\circ$ throughout the experiment. Small peaks in standard deviation appear to have occurred near the times of the helium soaks. It should be noted that despite the change in calibration parameters, this experiment proved that the L3G units could still be used after exposure to helium due to their relatively stable long term outputs.\\

\begin{table}[H]
\centering
\caption{Selected calibration factors the the helium soaked L3G unit}
\label{tab:l3g}
\begin{tabular}{| l | c c |  c c  | c c |} 
	 \multicolumn{1}{c}{ } & \multicolumn{2}{c}{\textbf{X}}& \multicolumn{2}{c}{\textbf{Y}}& \multicolumn{2}{c}{\textbf{Z}}\\ \hline
	\textbf{Time [days]} & $\pmb{\alpha}$ & \pmb{$\beta$} & \pmb{$\alpha$} & \pmb{$\beta$} & \pmb{$\alpha$ }& \pmb{$\beta$}  \\ \hline
	0 (pre-soak)	& 0.071 & -0.245 & 0.068 & -2.568 & 0.073 & -0.3758  \\ \hline
	3 (post-soak) & 0.080 & -30.243 & 0.078 & -48.135 & 0.079 & -0.723  \\ \hline
	4                    & 0.095  & -42.341 & 0.092 & -69.107 & 0.095 & 0.300  \\ \hline
	56                    & 0.089  & -37.661 & 0.087 & -60.883 & 0.090 & -0.006  \\ \hline
	58 (second soak)& 0.126  & -67.700 & 0.124 & -114.368 & 0.126 & 2.740  \\ \hline
	100 & 0.135  & -74.630 & 0.132 & -126.730 & 0.135 & 3.517  \\ \hline
\end{tabular}
\end{table}


Finally, the Epson unit showed no change in calibration or standard deviation throughout the experiment. Selected parameters are given in Table \ref{tab:eps}. The scale factor remained at a constant data-sheet value of 0.0125 while the bias drifted slightly, but not outside what would normally be expected. The stability of the unit can be seen graphically in Figure \ref{fig:eps}, which also indicates that the standard deviation remained under 0.5$^\circ$ for the duration of the experiment. To provide further evidence of the stability of the unit, the Angular Random Walk of the $z$ axis was calculated before the soak occurred and at the end of the experiment. The ARW measurements were 0.00156 and 0.00124 $\frac{deg}{\sqrt{hr}}$ for both cases respectively. This level of difference is expected given the precision of the experiment. A more accurate measurement could be made by isolating the unit from external vibrations. The Allan Variance plots used to calculate the ARW are given in Figures \ref{fig:pre} and \ref{fig:post}. The overall stability of the Epson compared to the other units is attributed to the fact that the gyroscope is hermetically sealed.\\

 \begin{table}[H]
\centering
\caption{Selected calibration factors for the helium soaked Epson unit}
\label{tab:eps}
\begin{tabular}{| l | c c |  c c  | c c |} 
	 \multicolumn{1}{c}{\textbf{ }} & \multicolumn{2}{c}{\textbf{X}}& \multicolumn{2}{c}{\textbf{Y}}& \multicolumn{2}{c}{\textbf{Z}}\\ \hline	\textbf{Time [days]} & $\pmb{\alpha}$ & \pmb{$\beta$} & \pmb{$\alpha$} & \pmb{$\beta$} & \pmb{$\alpha$ }& \pmb{$\beta$}  \\  \hline
	0 (pre-soak)	& 0.0125 & 0.106 & 0.0125 & -0.034 & 0.0125 & -0.100  \\ \hline
	3 (post-soak) & 0.0125 & 0.109 & 0.0125 & -0.044 & 0.0125 & -0.098  \\ \hline
	53                   & 0.0125  & 0.005 & 0.0125 & -0.0182 & 0.0125 & -0.004  \\ \hline
\end{tabular}
\end{table}
   
Three axis accelerometer data from the Epson was collected alongside the gyro measurements and has also been analyzed. It should be noted that while the Epson gyro is hermetically sealed, the accelerometer is not. Data for this analysis was extracted from four of the rate table tests and two steady-state tests performed to calculate the ARW. In all cases, the unit was stationary for the duration of the analysis. The rate table tests include a calibration done on day 0 and three post soak tests on days 3, 8 and 18 while the steady-state tests were performed on days 0 and 56. To account for misalignment of the unit, the euclidean norm of the three primary axis measurements was taken for each sample time. The mean and standard deviation, $\mu_a$ and $\sigma_a$, of the norm is consequently used for analysis.\\

Between the various tests $\mu_a$ changed little; however, $\sigma_a$ showed significant discrepancies. For instance, each test resulted in mean values near 1007.2 milli-G, but $\sigma_a$ started at 2.296 milli-G and trended downward until the final test had a standard deviation of only 0.725 milli-G. The values for mean and standard deviation for each test are given in Table \ref{tab:acc}. This information was derived from the plots in Figure \ref{fig:accel}. From the plots, it is visually apparent that the day 54 test had a large number of data spikes, but the calibration test on day 0 had the most noise in general. Although all tests did result in consistent averages milli-G, the apparently decreasing noise in the data leads to a somewhat curious result in that, if anything, one would expect the noise to increase. Possible sources of the trend could be effects from the helium, or other factors such as inconsistent testing procedures or simply environmental effects. Since the data used to perform this analysis is a by-product of the gyroscope testing, further testing designed specifically to study the accelerometer is needed to come to a conclusive result. Potential improvements include taking more test data and implementing better procedures to minimize outside factors.

\begin{table}[h]
\centering
\caption{Mean and standard deviation values associated with the Epson accelerometer.}
\label{tab:acc}
\begin{tabular}{| l | c | c |}
	\hline 
	 \textbf{Time [days]} & \pmb{$\mu_a$ [mG]} & \pmb{$\sigma_a$ [mG]} \\  \hline
	0 (pre-soak) & 1007.9 & 2.296 \\ \hline
	0 (pre-soak)* & 1008.3 & 2.495 \\ \hline
	3 (post-soak)* & 1007.2 & 1.527 \\ \hline
	8* & 1007.2 & 1.581 \\ \hline
	18* & 1007.6 & 1.217 \\ \hline
	56 & 1006.8 & 0.725 \\ \hline
	\multicolumn{3}{l}{* Data was extracted from rate table tests}\\
\end{tabular}
\end{table}





\clearpage
%%%%%%%%%%%%%
\section{Epoxy Seal Test}
\label{sec:epo}
%%%%%%%%%%%%%

This section details an attempt to prevent the degradation in gyro performance seen in Section \ref{sec:hel} by coating L3G gyro units in a layer of epoxy. Similarly to the prior section, the general procedure is presented and results are discussed.

\subsection{Procedure}

An effort to seal the gyros from the environment was undertaken after the detrimental effect of the helium was observed. It was decided to simply coat the unit in epoxy due to simplicity and ease of application. H72 epoxy, developed by Epoxy Technology \cite{h72} was chosen due to its very low permeability to helium compared to other epoxies as tested by Gerlach, et al \cite{epoxy}.\\

A mold was developed which allowed for a consistent application thickness of around 3/16", both on top of the gyro chip itself and on the opposite side of the board. This was done due to concerns that the helium might diffuse easily through the PCB material. A number of tests were done to refine the application process and produce a workable mold geometry. To perform the tests, a blank piece of FR4 material was substituted for the PCB. Multiple mold geometries were iterated until one was produced that could be easily filled with epoxy, broken open, and lined with a protective coating. Both a section view and complete view of the final mold are given in Figure \ref{fig:mold}. Note that the PCB board is inserted through the slot in the middle of the mold. This was done so the mold could be easily broken and the cast retrieved. Otherwise, the mold would need to be cut from the epoxy cast. Angled surfaces are incorporated to aid in the mold release. An overflow region is included on the top to prevent epoxy from spilling over while being de-gassed. \\

\begin{figure}[h]
\centering
\begin{minipage}{0.45\linewidth}
\centering
\includegraphics[width=0.5\linewidth] {Plots_helium/MoldSection.png}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\centering
\includegraphics[width=0.5\linewidth] {Plots_helium/MoldFull.png}
\end{minipage}
\caption{CAD renderings of the 3D printed mold.}
\label{fig:mold}
\end{figure}

The mold itself was manufactured using a MakerBot 3D printer. Other methods, such as using a CNC machine to mill a mold out of wax, were considered. However, the proper tooling for this and other potentially more desirable methods was not available. During testing, it was found that the epoxy chemically reacted with the plastic mold while curing. This led to bubbles forming on the surface of the epoxy which could potentially lead to uncontrolled and undesirable effects. Hence, the inside of the mold was coated with Teflon tape to both protect the plastic mold and act as a release agent. Multiple other coatings, including sheet plastic, turtle wax, and kapton tape, were tested. The results of some of these tests are shown in Figure \ref{fig:3}. The final coated units, along with an uncoated board for comparison, are shown in Figure \ref{fig:FB}.\\


\begin{figure}[h]
\includegraphics[width=0.80\linewidth] {Plots_helium/3_molds.jpg}
\caption{Sample results from three separate mold coating tests.}
\label{fig:3}
\end{figure}

\begin{figure}[h]
\centering
\begin{minipage}{0.45\linewidth}
\centering
\includegraphics[width=0.9\linewidth] {Plots_helium/units/front.jpg}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\centering
\includegraphics[width=0.9\linewidth] {Plots_helium/units/back.jpg}
\end{minipage}
\caption{The front (left image) and back (right image) sides of the tested units compared with an unmodified PCB board. The gyroscope itself is the rectangular black chip on the front of the PCB near the pins.}
\label{fig:FB}
\end{figure}

Although it was intended that the epoxy encapsulate both sides of the chip, the back side of the PCB was only partially covered. This was a result of the placement of the breakout pins on the board. These pins were covered with soft foam when the board was inserted into the mold so they would not incidentally be coated in epoxy. When the epoxy was degassed it expanded around the foam, but was not viscous enough to flow back into the mold. Thus, the back of the board was left partially uncovered.\\
\newpage
The epoxy application process went as follows: 
\begin{enumerate}
\item Coat the inside of the mold using adhesive backed Teflon tape.
\item Insert the breakout board into the mold and place foam over the pins to ensure they are not coated in epoxy. Place the mold in a vice so epoxy cannot escape through the slot where the PCB and plastic mold interface.
\item Mix the two part epoxy as described by the manufacturer.
\item Fill the mold to a depth such that the gyroscope is entirely submerged
\item Place the test sample into a vacuum chamber with sufficiently low pressure to de-gas the epoxy.
\item Remove sample from chamber, and place into an oven at 100$^\circ$C for 30 minutes. This curing leads to the maximum amount of cross-linking for the H72 epoxy which is advantageous to prevent diffusion \cite{epoxy}.
\item Remove from oven and let cool to room temperature.
\item Break the mold off the epoxy cast. 
\end{enumerate}

The units were tested once before being coated in epoxy, and again after the epoxy application but before being exposed to helium. The epoxy was applied on Nov, 14th 2014 and the units were exposed to helium approximately a week later.   

\subsection{Results}

The epoxy seal tests were done on two separate L3G units labeled \#6107 and \#6109 to correspond with MXL inventory numbers. Selected tabulated calibration values for the two units are given in Tables \ref{tab:6107} and \ref{tab:6109}. Results for \#6107 and \#6109 are plotted in Figures \ref{fig:6107} and \ref{fig:6109} respectively. In both cases, day 0 refers to the calibration done before the epoxy coating, day 7 corresponds to the set of measurements taken immediately following the epoxy application, and the helium soak was performed on day 14. The general trends in the results are similar so they will not necessarily be considered separately.\\

The results show that the epoxy was generally successful in preventing any long term undesired behavior. There was little difference in the data taken immediately before and after the helium soak occurred. The change in scale factor was on the order of one or two thousandths of a $\frac{deg}{hr}$ and no significant changes in bias were noted. However, both gyros exhibited interesting short term behavior immediately after the epoxy was applied. In the test done following the epoxy application, the calibration curves appear to have become non-linear. This can be seen as the stray blue line in both of the results plots. However, both units returned to near original  states by the time another test was performed 3 days later.  The final scale factors were within 15\% of the original values and the only minor changes in offset bias were recorded. These differences appear to be attributable to the epoxy application and not the helium. The cause of this behavior is unknown. Hypotheses include short term damage done by the corrosive effects of the epoxy or potentially residual heat trapped inside the unit. 

 \begin{table}[H]
\centering
\caption{Selected calibration factors for the epoxy sealed L3G unit 6107}
\label{tab:6107}
\begin{tabular}{| l | c c |  c c  | c c |} 
	 \multicolumn{1}{c}{\textbf{ }} & \multicolumn{2}{c}{\textbf{X}}& \multicolumn{2}{c}{\textbf{Y}}& \multicolumn{2}{c}{\textbf{Z}}\\ \hline	\textbf{Time [days]} & $\pmb{\alpha}$ & \pmb{$\beta$} & \pmb{$\alpha$} & \pmb{$\beta$} & \pmb{$\alpha$ }& \pmb{$\beta$}  \\  \hline
	0 (pre-epoxy)	& 0.070 & 0.966 & 0.067 & -0.807 & 0.069 & -0.885  \\ \hline
	7 (post-epoxy)	& 0.042 & 0.085 & 0.034 & -0.465 & 0.035 & -0.360  \\ \hline
	13 (pre-soak) & 0.080 & -0.094 & 0.065 & -0.769 & 0.067 & -0.869  \\ \hline
	26 (post-soak) & 0.081  & -0.750 & 0.067 & 0.832 & 0.068 & -6.813  \\ \hline
\end{tabular}
\end{table}

\begin{table}[H]
\centering
\caption{Selected calibration factors for the epoxy sealed L3G unit 6109}
\label{tab:6109}
\begin{tabular}{| l | c c |  c c  | c c |} 
	 \multicolumn{1}{c}{\textbf{ }} & \multicolumn{2}{c}{\textbf{X}}& \multicolumn{2}{c}{\textbf{Y}}& \multicolumn{2}{c}{\textbf{Z}}\\ \hline	\textbf{Time [days]} & $\pmb{\alpha}$ & \pmb{$\beta$} & \pmb{$\alpha$} & \pmb{$\beta$} & \pmb{$\alpha$ }& \pmb{$\beta$}  \\  \hline
	0 (pre-epoxy) & 0.070 & 0.783 & 0.070 & 0.965 & 0.070 & -0.342  \\ \hline
	7 (post-epoxy) & 0.036 & 0.526 & 0.036 & 0.337 & 0.036 & 0.526  \\ \hline
	13 (pre-soak) & 0.078 & 0.029 & 0.070 & 0.598 & 0.070 & 0.923  \\ \hline
	26 (post-soak) & 0.080  & .710 & 0.071 & 10.360 & 0.071 & -3.162  \\ \hline
\end{tabular}
\end{table}



\section{Future Work}
There are numerous avenues for future work. The failure modes of the devices must be more thoroughly identified so that more effective solutions can be developed. More testing should be done on the models presented here as well as others to determine the consistency of failures. Regarding failure prevention, the epoxy seal method needs to be fully developed. Experiments should be done to determine the minimum amount of epoxy that needs to be applied to prevent the failure, as well as find an epoxy application method that does not itself negatively impact the operation of a unit.These, as well as other potential practical matters, must be thoroughly tested before any solution is applied to flight hardware.

\section{Conclusion}
In conclusion, it has been shown that exposure to a helium environment can significantly effect the operation of an inertial devices. Three different models, a muRata SCR1100, ST L3G4200D, and Epson M-G350 were tested. Significant undesired effects were observed on the SCR1100, the L3G faired much better in that it could still be used but with different calibration factors, and the Epson was essentially unaffected by the exposure due to a hermetically sealed case. An analysis of the Epson accelerometer data appears to be favorable but more testing needs to be done to confirm the finding. A second helium soak of the L3G unit resulted in another change in calibration parameters. In addition, exposing the SCR1100 unit to a vacuum did not affect unit operation. Epoxy applied to two L3G units proved to be an effective barrier to helium; however, the application of the epoxy itself had an undesirable effect on the output of the unit.  This and other issues need to be addressed before a potential solution can be developed for flight hardware.

\section{Acknowledgments}
The authors would like to thank other members of the MXL team whom contributed to this experiment, most notably Alyson Mosher who performed the initial testing of the SCR1100 unit. Furthermore, we thank Raymond Chow and Epson Electronics for providing support and supplying the team with an Epson M-G350 unit.

\clearpage


\begin{figure}[h]
\centering
\includegraphics[width=1.0\linewidth] {Plots_helium/MeasurementPlots.png}
\caption{Sample of rate gyro measurements compared to actual rotations.}
\label{fig:history}
\end{figure}


\begin{figure}[p]
\centering
\includegraphics[width=1\linewidth] {Plots_helium/SCR1100results.pdf}
\caption{Results of SCR1100 helium soak testing.}
\label{fig:1100}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/L3GResults6108.pdf}
\caption{Results of L3G helium soak testing (\#6108 refers to the MXL inventory number).}
\label{fig:6108}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/EpsonResults.pdf}
\caption{Results of Epson M-G350 helium soak testing.}
\label{fig:eps}
\end{figure}


\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/AllanVariancePre.png}
\caption{Allan variance curve of the Epson unit before the helium soak.}
\label{fig:pre}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/AllanVariancePost.png}
\caption{Allan variance curve of the Epson unit after the helium soak.}
\label{fig:post}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/accel.jpg}
\caption{Compilation of the data sets used to perform the accelerometer analysis.}
\label{fig:accel}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/L3GResults6107.pdf}
\caption{Result of the epoxy seal tests on a L3G unit (MXL inventory number 6107).}
\label{fig:6107}
\end{figure}

\begin{figure}[p]
\includegraphics[width=1\linewidth] {Plots_helium/L3GResults6109.pdf}
\caption{Result of the epoxy seal tests on a L3G unit (MXL inventory number 6109)}
\label{fig:6109}
\end{figure}







\clearpage



%\begin{thebibliography}{9}% maximum number of references (for label width)
\bibliography{AIAAref}
% \bibitem{rebek:82bk}
 %Rebek, A., {\it Fickle Rocks}, Fink Publishing, Chesapeake, 1982.
%\end{thebibliography}

\end{document}

% - Release $Name:  $ -
